package com.maddox.libnetwork;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.lang.reflect.Type;

/**
 * 转换数据的具体实现
 */
public class JsonConvert implements Convert {

    /**
     * 数据结构
     * {
     *     "status":200,
     *     "message":"成功",
     *     "data":{
     *         "data":{}
     *        // "data":[],//这里可能是个JsonObject也可能是个JsonArray
     *     }
     * }
     *
     */
    @Override
    public Object convert(String response, Type type) {
        JSONObject jsonObject = JSON.parseObject(response);
        JSONObject data = jsonObject.getJSONObject("data");
        if (data != null) {
            //因为不确定是JsonObject还是JsonArray所以获取为Object类型
            Object detailData = data.get("data");
            return JSON.parseObject(detailData.toString(), type);
        }
        return null;
    }

    @Override
    public Object convert(String response, Class clazz) {

        JSONObject jsonObject = JSON.parseObject(response);
        JSONObject data = jsonObject.getJSONObject("data");
        if (data != null) {
            //因为不确定是JsonObject还是JsonArray所以获取为Object类型
            Object detailData = data.get("data");
            return JSON.parseObject(detailData.toString(), clazz);
        }
        return null;
    }
}
